package ar.uade.distribuidas.tpo.dba.servicio;

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;

import ar.uade.distribuidas.tpo.base.dominiodto.StockDTO;
import ar.uade.distribuidas.tpo.base.remoto.IGestionStock;
import ar.uade.distribuidas.tpo.dba.dao.StockDAO;
import ar.uade.distribuidas.tpo.dba.dominio.Rodamiento;
import ar.uade.distribuidas.tpo.dba.dominio.Stock;

public class GestionStock  extends UnicastRemoteObject implements IGestionStock{

	private static final long serialVersionUID = 1L;
	private StockDAO stockDAO;

	public GestionStock() throws RemoteException {
		super();
		this.stockDAO = StockDAO.getInstance();
	}

	@Override
	
	/*En este caso lo unico que hago es agregar el rodamiento con stock 0.
	 *  Para poder agregar stock, hay que actualizarlo
	*/
	public void altaStock(StockDTO stockDTO){
		Rodamiento r = (Rodamiento) stockDAO.getSession().get(Rodamiento.class, stockDTO.getIdRodamiento());
		Stock stock = new Stock(stockDTO.getIdStock(),r,0);
		stockDAO.persist(stock);
	}
	

	public void actualizarStock(StockDTO sDTO){
		Stock s = (Stock) stockDAO.getSession().get(Stock.class, sDTO.getIdStock());
		s.setCantidad(s.getCantidad()+sDTO.getCantidad());
		stockDAO.persist(s);
	}

	public StockDAO getStockDAO() {
		return stockDAO;
	}

	public void setStockDAO(StockDAO stockDAO) {
		this.stockDAO = stockDAO;
	}

	@Override
	public void bajaStock(StockDTO sDTO) throws RemoteException {
		// TODO Auto-generated method stub
	}
}